#pragma once
#include "detour_hook_function_ctrl.h"
#include "x51_socket_info_mgr.h"
#include "x51_prototol/protocol_mgr.h"

class CX51AppMgr
{
public:
	CX51AppMgr();
	~CX51AppMgr();

	static CX51AppMgr* GetInstance();
	static void Clear();
	void Init();
	void UnInit();

	CDetourHookFunctionCtrl* GetHookFunCtrl();
	CProtocolMgr* GetProtocolMgr();
	CX51SocketInfoMgr* GetSocketInfoMgr();
private:
	void HookSocketInfo();
	void UnHookSocketInfo();
private:
	static CX51AppMgr* g_app_mgr;
	CDetourHookFunctionCtrl m_func_ctrl;
	CX51SocketInfoMgr m_socket_mgr;
	CProtocolMgr  m_net_protocol_mgr;
};